package tail

// 返回值可以去掉，尾递归 进强调 最后 调用自身函数，并不一定返回值
tailrec fun sum(top: Long, initValue: Long): Long {
    return if (top <= 0) {
        initValue
    } else {
        sum(top - 1, initValue + top)
    }
}

fun main(args: Array<String>) {
    println("sum: ${sum(1_000_000L, 0)}")
}